salt

您所在的位置:网站首页 19216811 修改密码 salt

salt

2023-06-11 23:52| 来源: 网络整理| 查看: 265

修改salt-master配置 /etc/salt/master:

# redis job cache master_job_cache: redis redis.db: '0' redis.host: '127.0.0.1' redis.port: 6379 redis.password: 'xxxx'

修改缓存结果获取脚本:

/opt/saltstack/salt/lib/python3.10/site-packages/salt/returners/redis_return.py

不同版本,python版本或有不同,总共修改三处。

def _get_options(ret=None):     """     Get the redis options from salt.     """     attrs = {         "host": "host",         "port": "port",         "unix_socket_path": "unix_socket_path",         "db": "db",         "password": "password",   #新增第一处         "cluster_mode": "cluster_mode",         "startup_nodes": "cluster.startup_nodes",         "skip_full_coverage_check": "cluster.skip_full_coverage_check",     }

    if salt.utils.platform.is_proxy():         return {             "host": __opts__.get("redis.host", "salt"),             "port": __opts__.get("redis.port", 6379),             "unix_socket_path": __opts__.get("redis.unix_socket_path", None),             "db": __opts__.get("redis.db", "0"),             "password": __opts__.get("redis.password", ""),   #新增第二处             "cluster_mode": __opts__.get("redis.cluster_mode", False),             "startup_nodes": __opts__.get("redis.cluster.startup_nodes", {}),             "skip_full_coverage_check": __opts__.get(                 "redis.cluster.skip_full_coverage_check", False             ),         }

    _options = salt.returners.get_returner_options(         __virtualname__, ret, attrs, __salt__=__salt__, __opts__=__opts__     )     return _options

def _get_serv(ret=None):     """     Return a redis server object     """     _options = _get_options(ret)     global REDIS_POOL     if REDIS_POOL:         return REDIS_POOL     elif _options.get("cluster_mode"):         REDIS_POOL = StrictRedisCluster(             startup_nodes=_options.get("startup_nodes"),             skip_full_coverage_check=_options.get("skip_full_coverage_check"),             decode_responses=True,         )     else:         REDIS_POOL = redis.StrictRedis(             host=_options.get("host"),             port=_options.get("port"),             unix_socket_path=_options.get("unix_socket_path", None),             db=_options.get("db"),             password=_options.get("password", ""),   #新增第三处             decode_responses=True,         )     return REDIS_POOL

安装redis 以及python  库文件

yum install redis -y

systemctl start redis

redis-cli -h 127.0.0.1 -p 6379

>CONFIG set  requirepass XX

pip3 install redis==2.10.6  -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

 重启master即可。 

异常处理:

重启后执行测试命令时,抛异常:

2023-05-26 17:56:31,230 [salt.utils.parsers:1060][WARNING ][341] Master received a SIGTERM. Exiting. 2023-05-26 17:56:41,726 [salt.master      :2355][ERROR   ][19096] Failed to allocate a jid. The requested returner 'redis' could not be loaded. 2023-05-26 17:56:41,728 [salt.channel.server:166 ][ERROR   ][19096] Some exception handling a payload from minion Traceback (most recent call last):   File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/channel/server.py", line 163, in handle_message     ret, req_opts = yield self.payload_handler(payload)   File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/ext/tornado/gen.py", line 1056, in run

...

表明redis 库未被引用

重新执行:

pip3 install --target=/opt/saltstack/salt/lib/python3.10/site-packages/   redis==2.10.6

 问题修复!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3